1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for manipulating very long lists of data in a data processing system. Still more particularly, the present invention relates to a method and apparatus for manipulating and presenting data structures in a graphical user interface within a data processing system.
2. Description of the Related Art
The manipulation of data in a data processing system is well known in the prior art. Data may be manipulated in many ways in a modern state-of-the-art data processing system including: data accessing, data encoding, data communications, data compression, data conversion, data entry, data exchange, data filing, data linking, data locking, data manipulation, data mapping, data modeling, data processing, data recording, data sorting, and data transferring. The large amounts of data that are available to the user of modern state-of-the-art data processing system often become overwhelming in magnitude and complexity. These situations may often arise in the creation and execution of multimedia presentations.
Data processing systems are capable of communicating information to users in many formats, including: text, graphics, sounds, animated graphics, synthesized speech, and video. Multimedia presentations employ a data processing system to combine such information formats into a coherent and comprehensive presentation to the user.
As a result of the increasing complexity of data processing systems and with the introduction of multimedia presentations, attempts have been made to simplify the interface between a user and the large amounts of data present within a modern data processing system. One example of an attempt to simplify the interface between a user and a data processing system is the utilization of a so-called graphic user interface (GUI) to provide an intuitive and graphical interface between the user and the data processing system. A GUI is an interface system, including devices, by which a user interacts with a system, system components, and/or system applications via windows or view ports, icons, menus, pointing devices, etc.
Although GUIs have made manipulation of data easier for users in some instances, GUIs have created new problems. For example, a user working in an application frequently selects items from an application menu toolbar. This interaction will require the user to move a pointer via a mouse over a graphical object such as a menu, icon, or control to make a selection.
The term "mouse," when used in this document, refers to any type of operating system supported graphical pointing device including, but not limited to: a mouse, track ball, touch pad, light pin, touch screen, and the like. A pointing device is typically employed by a user of the data processing system to interact with the data processing system's GUI. A "pointer" is an iconic image controlled by a mouse or other such device, and is displayed on the video display device of a data processing system to visually indicate to the user icons, menus, or other types of graphical objects that may be selected or manipulated.
Graphical objects are often stored within subdirectories or folders. Often a user desires to see the contents of a folder displayed as a list, which may be displayed to a user within a window in the graphical user interface. A "detail's view" option is often available, allowing the user to see a list of detailed information about the objects stored within a folder. A "detail's view" list is often scrollable both horizontally and vertically when there are many objects for display in the folder.
When the contents of the list do not fit in the window, vertical scrolling can be used by the end-user, effectively providing a moveable window for viewing the contents of the long list. The number of entries that can be seen within a scrollable window is limited by the number of list entries that will fit within the window, as presented by the graphical user interface. Of course, the actual number of entries that will fit in the window is affected both by screen resolution and the size of the selected font. This shortage of space that occurs in the vertical dimension occurs even if space in the horizontal dimension is abundantly available (i.e. the width of the entries being viewed by the user is relatively small, and easily fits in the window).
For example, if a detailed view of the files located in a subdirectory is of interest, each entry in the list, as displayed to the user, can contain file name, file size, last write date, last write time, etc. If the number of entries in the list exceeds the capacity of the window (in the vertical dimension), the number of entries that can be displayed in the window's vertical dimension cannot be increased by changing the horizontal dimension of the window. This is true even if the user is not interested in viewing certain attributes in each entry (last write date, last write time, etc.). In other words, making the horizontal dimension of the window smaller does not increase the number of entries that can be displayed, even though this action theoretically makes more "real estate" available on the display. In practical terms, when vertical real estate on the display is used up, it is not possible to see more entries in the list, even though real estate in the horizontal dimension is plentiful. In such an instance, a smaller font or increase in screen resolution is required to see more entries under the presently available schemes for displaying objects.
Therefore, it would advantageous to have an improved method and apparatus for displaying and manipulating long lists of data in a data processing system.